package com.ruoyi.system.service.impl;

import java.util.List;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.MeetMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.domain.Meet;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.service.IMeetService;
import com.ruoyi.system.domain.vo.MeetVO;
import com.ruoyi.system.mapper.MeetLogMapper;
import com.ruoyi.system.domain.MeetLog;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * 会议信息管理Service业务层处理
 *
 * @author ruoyi
 * @date 2025-01-09
 */
@Service
public class MeetServiceImpl implements IMeetService
{
    @Resource
    private MeetMapper meetMapper;

    @Resource
    private MeetLogMapper meetLogMapper;

    /**
     * 查询会议信息管理
     *
     * @param meetId 会议信息管理主键
     * @return 会议信息管理
     */
    @Override
    public Meet selectMeetByMeetId(Integer meetId)
    {
        return meetMapper.selectMeetByMeetId(meetId);
    }

    /**
     * 查询会议信息管理列表
     *
     * @param meet 会议信息管理
     * @return 会议信息管理
     */
    @Override
    public List<Meet> selectMeetList(Meet meet)
    {
        return meetMapper.selectMeetList(meet);
    }

    /**
     * 新增会议信息管理
     *
     * @param meet 会议信息管理
     * @return 结果
     */
    @Override
    public int insertMeet(Meet meet)
    {
        return meetMapper.insertMeet(meet);
    }

    /**
     * 修改会议信息管理
     *
     * @param meet 会议信息管理
     * @return 结果
     */
    @Override
    @Transactional
    public int updateMeet(Meet meet)
    {
        int rows = meetMapper.updateMeet(meet);
        // 查询会议日志
        MeetLog meetLog = meetLogMapper.selectMeetLogByMeetId(meet.getMeetId());

        // 根据审核结果修改会议日志
        if ("pass".equals(meet.getAuditAction())) {
            meetLog.setStatus("0");
            meetLogMapper.updateMeetLog(meetLog);
        }else if ("reject".equals(meet.getAuditAction())) {
            meetLog.setStatus("4");
            meetLogMapper.updateMeetLog(meetLog);
        }

        return rows;
    }

    /**
     * 批量删除会议信息管理
     *
     * @param meetIds 需要删除的会议信息管理主键
     * @return 结果
     */
    @Override
    public int deleteMeetByMeetIds(Integer[] meetIds)
    {
        return meetMapper.deleteMeetByMeetIds(meetIds);
    }

    /**
     * 删除会议信息管理信息
     *
     * @param meetId 会议信息管理主键
     * @return 结果
     */
    @Override
    public int deleteMeetByMeetId(Integer meetId)
    {
        return meetMapper.deleteMeetByMeetId(meetId);
    }

    @Override
    public List<MeetVO> selectMeetVOList(Meet meet) {
        return meetMapper.selectMeetVOList(meet);
    }
}
